#!/usr/bin/env python -OO
# -*- coding: utf-8 -*-    

# Copyright © 2008,2009 Trust Digital Technology Laboratory, Shanghai Jiao Tong University.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# Author:
#   XING Dong sheng <homer.xing@gmail.com>

from __future__ import with_statement

__all__ = ['installvm']

import os, sys
import softwaredependent as D

def addtogroup():
	D.execute("sudo adduser %s vboxusers"%D.USER)

def fixusb():
	#修正virtualbox不能挂载U盘
	D.ownbyme("/etc/fstab")
	with open("/etc/fstab", "r") as f:
		content=f.read()
	if content.find("/proc/bus/usb")==-1:
		with open("/etc/fstab", "a") as f:
			f.write("none /proc/bus/usb usbfs devgid=1000,devmode=664 0 0\n")
	D.ownbyroot("/etc/fstab")

def installvm():
	if os.path.exists("/usr/bin/VirtualBox")==False:
		if D.install("libqt3-mt libqt4-core libqt4-gui libcurl3 build-essential"): #最后一个用于编译内核模块
			f=D.download("virtualbox")
			if D.execute("sudo dpkg --install "+f):
				#VirtualBox 2.2后，不再需要自行添加组和修复U盘BUG :)
				#VirtualBox 3.0 Beta1以及更新版本不需要python-2.5 :)
				pass

if __name__ == "__main__":
	installvm()
